package juego;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class CronometroEspera implements Persistible {
	
	private int contador;
	private int tiempoMaximo;
	
	public CronometroEspera(int n){
		this.contador = 0;
		this.tiempoMaximo = n;
	}
	
	public boolean puedoActuar(){
		if (this.contador == 0){
			this.contador = this.tiempoMaximo;
			return true;
		}
		else{
			this.contador--;
			return false;
		}
	}

	public Element getElement(Document doc) {
		Element cronometro = doc.createElement("CronometroEspera");

		Integer valorContador = new Integer(this.contador);
		Element contador = doc.createElement("Contador");
		cronometro.appendChild(contador);
		contador.setTextContent(valorContador.toString());
		
		Integer valorTiempoMaximo = new Integer(this.tiempoMaximo);
		Element tiempoMaximo = doc.createElement("TiempoMaximo");
		cronometro.appendChild(tiempoMaximo);
		tiempoMaximo.setTextContent(valorTiempoMaximo.toString());
		
		return cronometro;
	}
	
	public static CronometroEspera fromElement(Element element) {
		
		int valorContador = 0;
		int valorTiempoMaximo = 0;
		
		NodeList childs = element.getChildNodes();
		for (int i = 0; i < childs.getLength(); i++) {
			Node child = childs.item(i);
			if (child.getNodeName().equals("Contador")) {
				valorContador = Integer.parseInt(child.getTextContent());
			} else if (child.getNodeName().equals("TiempoMaximo")) {
				valorTiempoMaximo = Integer.parseInt(child.getTextContent());
			}
		}
		
		CronometroEspera cronometro = new CronometroEspera(valorTiempoMaximo);
		cronometro.contador = valorContador;
		return cronometro;
	}
	
//	public int getContador(){
//		return contador;
//	}
//	
//	public int getTiempoMaximo(){
//		return tiempoMaximo;
//	}
	
		
	
	
		

}
